# 由于Python是动态语言，根据类创建的实例可以任意绑定属性。
#
# 给实例绑定属性的方法是通过实例变量，或者通过self变量：

class Student1():
    def __init__(self,name):
        self.name=name


s=Student1('hy')
s.score=100
print(s.name,s.score)

#如果Student类本身需要绑定一个属性呢？可以直接在class中定义属性，这种属性是类属性，归Student类所有：
class Student(object):
    name='Student'
#当我们定义了一个类属性后，这个属性虽然归类所有，但类的所有实例都可以访问到。来测试一下：

s1=Student()
print(s1.name)

s1.name="hws"
print(s1.name)

print(Student.name)

del s1.name
print(s1.name)
#在编写程序的时候，千万不要对实例属性和类属性使用
# 相同的名字，因为相同名称的实例属性将屏蔽掉类属性，
# 但是当你删除实例属性后，再使用相同的名称，访问到的将是类属性。

#为了统计学生人数，可以给Student类增加一个类属性，每创建一个实例，该属性自动增加：
class StudentT(object):
    count = 0

    def __init__(self, name):
        self.name = name
        StudentT.count=StudentT.count+1
        #self.count=self.count+2wuxiao 


s2=StudentT('test')
print(StudentT.count)

s2=StudentT('test1')
print(StudentT.count)

s2=StudentT('test2')
print(StudentT.count)

s2=StudentT('test3')
print(StudentT.count)

#count 成了类的全局变量，而且共享可操作


